Lectura del dataset y su estructura

# leo el archivo ar_properties 
library(readr) # libreria con la funcion read_csv
datos1a <- read_csv("ar_properties.csv") # Acá completen con su propio PATH al archivo

── Column specification ───────────────────────────────────────────────────────────────────────
cols(
  .default = col_character(),
  start_date = col_date(format = ""),
  end_date = col_date(format = ""),
  created_on = col_date(format = ""),
  lat = col_double(),
  lon = col_double(),
  l6 = col_logical(),
  rooms = col_double(),
  bedrooms = col_double(),
  bathrooms = col_double(),
  surface_total = col_double(),
  surface_covered = col_double(),
  price = col_double()
)
ℹ Use `spec()` for the full column specifications.
datos1a # veo la base

Aplicando filtros

Se seleccionan aquellos registros que pertenecen a Argentina y Capital Federal, cuyo precio esta en dolares (USD), el tipo de propiedad corresponde a Departamento y el tipo de operacion sea Venta.

library(tidyverse) # carga varios paquetes: dplyr, ggplot2, purr, rtingr, etc.
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
── Attaching packages ────────────────────────────────────────────────────── tidyverse 1.3.0 ──
✓ ggplot2 3.3.3     ✓ dplyr   1.0.6
✓ tibble  3.1.2     ✓ stringr 1.4.0
✓ tidyr   1.1.3     ✓ forcats 0.5.1
✓ purrr   0.3.4     
── Conflicts ───────────────────────────────────────────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
datos1b <- datos1a %>% 
                   # Me quedo con los que pertenecen a Argentina y Capital Federal
            filter(l1 == "Argentina", 
                   l2 == "Capital Federal", 
                   # cuyo precio este en dolares 
                   currency == "USD", 
                   # propiedad tipo Departamento
                   property_type %in% c("Departamento"),
                   # operaciones de venta
                   operation_type == "Venta") %>% select(id,l3,surface_covered,price,lat,lon,rooms,bathrooms,bedrooms) %>% na.omit() %>% mutate(precio=price,barrio=l3,sup=surface_covered,pm2=precio/sup,rooms,bathrooms,bedrooms) %>% na.omit()
# chequeo si el filtro se refleja correctamente en mi nuevo dataset datos1b
datos1b 
attach(datos1b) # pongo las variables en memoria

Cargo las librerias basicas para trabajar con datos espaciales

library(terra)
library(sf)
library("leaflet")

Datos Vectoriales

Cargo depto como Puntos

cargo calles de CABA

plot(calles.comp)
plotting the first 10 out of 29 attributes; use max.plot = 29 to plot all

Carga de Barrios CABA

Carga de Comunas CABA

Grafico de deptos, comunas y barrios

Que depto esta en que barrio: puntos en poligonos

barrios_con_deptos
Simple feature collection with 48 features and 2 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: -58.53152 ymin: -34.70529 xmax: -58.33515 ymax: -34.52649
CRS:           4326
First 10 features:
             BARRIO    n                       geometry
1         CHACARITA  359 POLYGON ((-58.45282 -34.595...
2          PATERNAL  164 POLYGON ((-58.46558 -34.596...
3      VILLA CRESPO 2190 POLYGON ((-58.42375 -34.597...
4  VILLA DEL PARQUE  260 POLYGON ((-58.49461 -34.614...
5           ALMAGRO 2707 POLYGON ((-58.41287 -34.614...
6         CABALLITO 1966 POLYGON ((-58.43061 -34.607...
7  VILLA SANTA RITA  180 POLYGON ((-58.48192 -34.624...
8      MONTE CASTRO  188 POLYGON ((-58.50349 -34.624...
9        VILLA REAL   33 POLYGON ((-58.52512 -34.614...
10           FLORES  712 POLYGON ((-58.46041 -34.656...

grafico

require(tmap)
tmap_mode("view")
tmap mode set to interactive viewing
tm_shape(barrios_con_deptos) +
  tm_fill(
    col = "n",
    palette = "Greens",
    style = "cont",
    contrast = c(0.1, 1),
    title = "Deptos por Barrio",
    id = "boro_ct2010",
    showNA = FALSE,
    alpha = 0.8) +
  tm_borders(col = "darkgray", lwd = 0.7)
LS0tCnRpdGxlOiAiRXN0YWRpc3RpY2EgRXNwYWNpYWwgQXBsaWNhZGEiCmF1dGhvcjogIkFuZHJlcyBGYXJhbGwiCmRhdGU6ICIxOCBkZSBBZ29zdG8gZGUgMjAyMSIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICAgIHRvYzogeWVzCiAgaHRtbF9ub3RlYm9vazoKICAgIHRoZW1lOiBsdW1lbgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCnN1YnRpdGxlOiBFamVtcGxpZmljYWNpb24gY29uIGxhIGJhc2UgZGUgUHJvcGVyYXRpCi0tLQoKCgojIyMgIExlY3R1cmEgZGVsIGRhdGFzZXQgeSBzdSBlc3RydWN0dXJhCgpgYGB7cn0KIyBsZW8gZWwgYXJjaGl2byBhcl9wcm9wZXJ0aWVzIApsaWJyYXJ5KHJlYWRyKSAjIGxpYnJlcmlhIGNvbiBsYSBmdW5jaW9uIHJlYWRfY3N2CmRhdG9zMWEgPC0gcmVhZF9jc3YoImFyX3Byb3BlcnRpZXMuY3N2IikgIyBBY8OhIGNvbXBsZXRlbiBjb24gc3UgcHJvcGlvIFBBVEggYWwgYXJjaGl2bwpkYXRvczFhICMgdmVvIGxhIGJhc2UKYGBgCgojIyMgQXBsaWNhbmRvIGZpbHRyb3MKClNlIHNlbGVjY2lvbmFuIGFxdWVsbG9zIHJlZ2lzdHJvcyBxdWUgcGVydGVuZWNlbiBhIEFyZ2VudGluYSB5IENhcGl0YWwgRmVkZXJhbCwgY3V5byBwcmVjaW8gZXN0YSBlbiBkb2xhcmVzIChVU0QpLCBlbCB0aXBvIGRlIHByb3BpZWRhZCBjb3JyZXNwb25kZSBhIERlcGFydGFtZW50byB5IGVsIHRpcG8gZGUgb3BlcmFjaW9uIHNlYSBWZW50YS4gCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpICMgY2FyZ2EgdmFyaW9zIHBhcXVldGVzOiBkcGx5ciwgZ2dwbG90MiwgcHVyciwgcnRpbmdyLCBldGMuCmRhdG9zMWIgPC0gZGF0b3MxYSAlPiUgCiAgICAgICAgICAgICAgICAgICAjIE1lIHF1ZWRvIGNvbiBsb3MgcXVlIHBlcnRlbmVjZW4gYSBBcmdlbnRpbmEgeSBDYXBpdGFsIEZlZGVyYWwKICAgICAgICAgICAgZmlsdGVyKGwxID09ICJBcmdlbnRpbmEiLCAKICAgICAgICAgICAgICAgICAgIGwyID09ICJDYXBpdGFsIEZlZGVyYWwiLCAKICAgICAgICAgICAgICAgICAgICMgY3V5byBwcmVjaW8gZXN0ZSBlbiBkb2xhcmVzIAogICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPT0gIlVTRCIsIAogICAgICAgICAgICAgICAgICAgIyBwcm9waWVkYWQgdGlwbyBEZXBhcnRhbWVudG8KICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGUgJWluJSBjKCJEZXBhcnRhbWVudG8iKSwKICAgICAgICAgICAgICAgICAgICMgb3BlcmFjaW9uZXMgZGUgdmVudGEKICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlID09ICJWZW50YSIpICU+JSBzZWxlY3QoaWQsbDMsc3VyZmFjZV9jb3ZlcmVkLHByaWNlLGxhdCxsb24scm9vbXMsYmF0aHJvb21zLGJlZHJvb21zKSAlPiUgbmEub21pdCgpICU+JSBtdXRhdGUocHJlY2lvPXByaWNlLGJhcnJpbz1sMyxzdXA9c3VyZmFjZV9jb3ZlcmVkLHBtMj1wcmVjaW8vc3VwLHJvb21zLGJhdGhyb29tcyxiZWRyb29tcykgJT4lIG5hLm9taXQoKQojIGNoZXF1ZW8gc2kgZWwgZmlsdHJvIHNlIHJlZmxlamEgY29ycmVjdGFtZW50ZSBlbiBtaSBudWV2byBkYXRhc2V0IGRhdG9zMWIKZGF0b3MxYiAKYXR0YWNoKGRhdG9zMWIpICMgcG9uZ28gbGFzIHZhcmlhYmxlcyBlbiBtZW1vcmlhCmBgYAoKQ2FyZ28gbGFzIGxpYnJlcmlhcyBiYXNpY2FzIHBhcmEgdHJhYmFqYXIgY29uIGRhdG9zIGVzcGFjaWFsZXMKCmBgYHtyfQpsaWJyYXJ5KHRlcnJhKQpsaWJyYXJ5KHNmKQpsaWJyYXJ5KCJsZWFmbGV0IikKYGBgCgojIyMgRGF0b3MgVmVjdG9yaWFsZXMKCiMjIENhcmdvIGRlcHRvIGNvbW8gUHVudG9zCgpgYGB7cn0KbG9ubGF0IDwtIGNiaW5kKGRhdG9zMWIkbG9uLCBkYXRvczFiJGxhdCkKZGYgPC0gZGF0YS5mcmFtZShJRD1kYXRvczFiJGlkLCBkYXRvczFiJHN1cCkKY3JkcmVmIDwtICIrcHJvaj1sb25nbGF0ICtkYXR1bT1XR1M4NCIKZGVwdG9zIDwtIHZlY3QobG9ubGF0LCBhdHRzPWRmLCBjcnM9Y3JkcmVmKSAjIHdpdGggdGVycmEKZGVwdG9zLnNmIDwtIHNmOjpzdF9hc19zZihwdHMpICMgY29udmVyc2lvbiB0byBzZgojcGxvdChwdHMpCnBsb3QoZGVwdG9zLnNmKQpsZWFmbGV0KGRlcHRvcy5zZikgJT4lIGFkZFRpbGVzKCkgJT4lIGFkZENpcmNsZU1hcmtlcnMocmFkaXVzPTAuMikKCmBgYAoKIyMgY2FyZ28gY2FsbGVzIGRlIENBQkEKCgpgYGB7cn0KY2FsbGVzLmNvbXAgPC0gc3RfcmVhZCgiL2hvbWUvYW5kcmVzZmFyYWwvRHJvcGJveC9Fc3RhZGlzdGljYSBFc3BhY2lhbC9jYWxsZWplcm8vIikKY2FsbGVzLmNvbXAKcGxvdChjYWxsZXMuY29tcCkKYmFycmlvcyRnZW9tZXRyeQpjbGFzcyhiYXJyaW9zKQpwbG90KGJhcnJpb3NbMTo1LF0pCnByaW50KGJhcnJpb3MuY29tcCwgbiA9IDMpCmBgYAoKIyMgQ2FyZ2EgZGUgQmFycmlvcyBDQUJBCgpgYGB7cn0KYmFycmlvcy5jb21wIDwtIHN0X3JlYWQoIi9ob21lL2FuZHJlc2ZhcmFsL0Ryb3Bib3gvRXN0YWRpc3RpY2EgRXNwYWNpYWwvYmFycmlvcy8iKQpiYXJyaW9zLmNvbXAKYmFycmlvczwtYmFycmlvcy5jb21wWzFdCmJhcnJpb3MKYmFycmlvcyRnZW9tZXRyeQpjbGFzcyhiYXJyaW9zKQpwbG90KGJhcnJpb3NbMTo1LF0pCnByaW50KGJhcnJpb3MuY29tcCwgbiA9IDMpCmBgYAoKIyMgQ2FyZ2EgZGUgQ29tdW5hcyBDQUJBCgpgYGB7cn0KY29tdW5hcy5jb21wIDwtIHN0X3JlYWQoIi9ob21lL2FuZHJlc2ZhcmFsL0Ryb3Bib3gvRXN0YWRpc3RpY2EgRXNwYWNpYWwvY29tdW5hcy8iKQpjb211bmFzLmNvbXAKcGxvdChjb211bmFzLmNvbXApCmNvbXVuYXM8LWNvbXVuYXMuY29tcFsxXQpwbG90KGNvbXVuYXMpCgpgYGAKCkdyYWZpY28gZGUgZGVwdG9zLCBjb211bmFzIHkgYmFycmlvcwoKYGBge3J9CiMgZGVwdG9zIHkgYmFycmlvcwpsZWFmbGV0KGRlcHRvcy5zZikgJT4lIGFkZFRpbGVzKCkgJT4lIGFkZENpcmNsZU1hcmtlcnMocmFkaXVzPTAuMikgJT4lIGFkZFBvbHlnb25zKGRhdGE9YmFycmlvcyxjb2xvciA9ICJncmVlbiIpCiMgYWdyZWdvIGNvbXVuYXMKbGVhZmxldChkZXB0b3Muc2YpICU+JSBhZGRUaWxlcygpICU+JSBhZGRDaXJjbGVNYXJrZXJzKHJhZGl1cz0wLjIpICU+JSBhZGRQb2x5Z29ucyhkYXRhPWJhcnJpb3MsY29sb3IgPSAiZ3JlZW4iKSAlPiUgYWRkUG9seWdvbnMoZGF0YT1jb211bmFzLGNvbG9yID0gInJlZCIpCgpgYGAKClF1ZSBkZXB0byBlc3RhIGVuIHF1ZSBiYXJyaW86IHB1bnRvcyBlbiBwb2xpZ29ub3MKCmBgYHtyfQpkZXB0b3NfaW5fYmFycmlvcyA8LSBzdF9qb2luKGRlcHRvcy5zZiwgYmFycmlvcywgam9pbiA9IHN0X3dpdGhpbikKZGVwdG9zX2luX2JhcnJpb3MKZGVwdG9zX2JhcnJpb3NfY291bnQgPC0gY291bnQoYXNfdGliYmxlKGRlcHRvc19pbl9iYXJyaW9zKSwgQkFSUklPKQpkZXB0b3NfYmFycmlvc19jb3VudApiYXJyaW9zX2Nvbl9kZXB0b3MgPC0gbGVmdF9qb2luKGJhcnJpb3MsIGRlcHRvc19iYXJyaW9zX2NvdW50KQpiYXJyaW9zX2Nvbl9kZXB0b3MKYGBgCgpncmFmaWNvCgpgYGB7cn0KcmVxdWlyZSh0bWFwKQp0bWFwX21vZGUoInZpZXciKQp0bV9zaGFwZShiYXJyaW9zX2Nvbl9kZXB0b3MpICsKICB0bV9maWxsKAogICAgY29sID0gIm4iLAogICAgcGFsZXR0ZSA9ICJHcmVlbnMiLAogICAgc3R5bGUgPSAiY29udCIsCiAgICBjb250cmFzdCA9IGMoMC4xLCAxKSwKICAgIHRpdGxlID0gIkRlcHRvcyBwb3IgQmFycmlvIiwKICAgIGlkID0gImJvcm9fY3QyMDEwIiwKICAgIHNob3dOQSA9IEZBTFNFLAogICAgYWxwaGEgPSAwLjgpICsKICB0bV9ib3JkZXJzKGNvbCA9ICJkYXJrZ3JheSIsIGx3ZCA9IDAuNykKYGBgCgo=